<table class="exampleTable" > 
	<thead> 
		<tr> 
			<th colspan="3">页面访问</th>
		</tr> 
	</thead> 
	 <tbody> 
	 	<tr> 
			<td  width="30%">请求路径</td> 
			<td  width="70%" colspan="2">user/control/addPrivateMessage.htm</td>
		</tr>
		<tr> 
			<td>请求方式</td> 
			<td colspan="2">GET</td>
		</tr>
		<tr> 
			<td>请求参数</td> 
			<td>对方用户名称</td> 
			<td>
				变量：friendUserName<br>
				类型：String<br>
				是否必填：是
			</td>
		</tr>
		
		<tr> 
			<td rowspan="2">返回值</td> 
			<td>是否允许发私信</td> 
			<td>
				变量：allowSendPrivateMessage<br>
				类型：boolean<br>
				值：true允许&nbsp;&nbsp;false不允许
			</td>
		</tr> 
		<tr> 
			<td>表单验证码</td> 
			<td>
				变量：formCaptcha<br>
				类型：<a style="color: #317ee7" onclick="anchorJump('#anchor_10'); return false;">FormCaptcha</a>
			</td>
		</tr>
	</tbody> 
</table>

<table class="exampleTable" > 
	<thead> 
		<tr> 
			<th colspan="3">页面访问 - AJAX方式</th>
		</tr> 
	</thead> 
	 <tbody> 
	 	<tr> 
			<td  width="30%">请求路径</td> 
			<td  width="70%" colspan="2">user/control/addPrivateMessage.htm</td>
		</tr>
		<tr> 
			<td>请求方式</td> 
			<td colspan="2">GET</td>
		</tr>
		<tr> 
			<td>自定义请求头</td> 
			<td colspan="2">协议头：X-Requested-With  值：XMLHttpRequest</td>
		</tr>
		<tr> 
			<td>请求参数</td> 
			<td>对方用户名称</td> 
			<td>
				变量：friendUserName<br>
				类型：String<br>
				是否必填：是
			</td>
		</tr>
		<tr> 
			<td width="30%" rowspan="4">请求成功返回</td> 
			<td width="30%" rowspan="4">JSON格式值 类型:Map&ltString,Object></td>
			<td width="40%">键参数：allowSendPrivateMessage<br>值内容说明：是否允许发私信<br>值类型：boolean</td> 
		</tr>
		<tr> 
			<td>键参数：formCaptcha<br>值内容说明：表单验证码<br>值类型：<a style="color: #317ee7" onclick="anchorJump('#anchor_10'); return false;">FormCaptcha</a></td>
		</tr>	
	</tbody> 
</table>


<table id="anchor_10" class="exampleTable" > 
	<thead> 
		<tr> 
			<th colspan="3">表单验证码 FormCaptcha</th>
		</tr> 
		<tr> 
			<th width="30%">变量</th> 
			<th width="30%">类型</th>
			<th width="40%">说明</th> 
		</tr> 
	</thead> 
	<tbody> 
		<tr> 
			<td>showCaptcha</td> 
			<td>boolean</td>
			<td>是否显示验证码 (根据'全站设置 - 基本设置 - 发表私信每分钟提交超过'参数计算是否含有值)</td>
		</tr>
		<tr> 
			<td>captchaKey</td> 
			<td>String</td>
			<td>验证码编号</td>
		</tr>
		<tr> 
			<td>说明</td> 
			<td colspan="2">Freemarker模板不支持直接输出布尔类型(boolean),布尔类型对象输出要使用内建函数c将布尔值转换为字符串；例如布尔类型${formCaptcha.showCaptcha}要写成${formCaptcha.showCaptcha?c}才能正确显示；比较${formCaptcha.showCaptcha?c == 'true'}</td>
		</tr>
	</tbody>
</table>





<table class="exampleTable" > 
	<thead> 
		<tr> 
			<th colspan="3">提交 添加私信 - 默认方式</th>
		</tr> 
	</thead> 
	 <tbody> 
	 	<tr> 
			<td width="30%" >请求路径</td> 
			<td width="70%" colspan="2">user/control/addPrivateMessage.htm</td>
		</tr>
		<tr> 
			<td>请求方式</td> 
			<td colspan="2">POST</td>
		</tr>
		<tr> 
			<td>请求参数</td> 
			<td colspan="2"><a style="color: #317ee7" onclick="anchorJump('#anchor_600'); return false;">参数表</a></td>
		</tr>
		<tr> 
			<td>提交成功返回</td> 
			<td colspan="2">默认跳转到jump模板页显示提交成功信息；跳转路径参数jumpUrl有值时按参数值路径跳转</td>
		</tr>
		<tr>
			<td rowspan="2">返回值</td>   
			<td>错误值集合</td> 
			<td>
				变量：error<br>
				类型：<a style="color: #317ee7" onclick="anchorJump('#anchor_50'); return false;">Map&ltString,String></a>
			</td>
		</tr>
		<tr>  
			<td>私信</td> 
			<td>
				变量：privateMessage<br>
				类型：<a style="color: #317ee7" onclick="anchorJump('#anchor_20'); return false;">PrivateMessage</a>
			</td>
		</tr>
	</tbody> 
</table>
<table class="exampleTable" > 
	<thead> 
		<tr> 
			<th colspan="3">提交 添加私信 - AJAX方式</th>
		</tr> 
	</thead> 
	 <tbody> 
	 	<tr> 
			<td>请求路径</td> 
			<td colspan="2">user/control/addPrivateMessage.htm</td>
		</tr>
		<tr> 
			<td>请求方式</td> 
			<td colspan="2">POST</td>
		</tr> 
		<tr> 
			<td>自定义请求头</td> 
			<td colspan="2">协议头：X-Requested-With  值：XMLHttpRequest</td>
		</tr>
		<tr> 
			<td>请求参数</td> 
			<td colspan="2"><a style="color: #317ee7" onclick="anchorJump('#anchor_600'); return false;">参数表</a></td>
		</tr>
		<tr> 
			<td width="30%" rowspan="3">提交返回</td> 
			<td width="30%" rowspan="3">JSON格式值 类型:Map&ltString,Object></td>
			<td width="40%">键参数：success<br>值内容说明：成功返回true 失败返回false<br>值类型：String</td> 
		</tr>
		<tr> 
			<td>键参数：error<br>值内容说明：错误值集合<br>值类型：<a style="color: #317ee7" onclick="anchorJump('#anchor_50'); return false;">Map&ltString,String></a></td> 
		</tr>
		<tr> 
			<td>键参数：captchaKey<br>值内容说明：新验证码编号(当success参数返回false时并且根据'全站设置 - 基本设置 - 发表私信每分钟提交超过'参数计算是否含有值)<br>值类型：String</td> 
		</tr>
	</tbody> 
</table>

<table id="anchor_50"  class="exampleTable" > 
	<thead> 
		<tr> 
			<th colspan="3">添加私信 错误值 error</th>
		</tr> 
		<tr> 
			<th width="30%">变量</th> 
			<th width="30%">类型</th>
			<th width="40%">说明</th> 
		</tr> 
	</thead> 
	 <tbody> 
	 	<tr> 
			<td>privateMessage</td> 
			<td>String</td>
			<td>发送私信错误</td>
		</tr>
		<tr> 
			<td>messageContent</td> 
			<td>String</td>
			<td>私信内容错误</td>
		</tr>
	 	<tr> 
			<td>captchaValue</td> 
			<td>String</td>
			<td>验证码错误</td>
		</tr>
	 	<tr> 
			<td>token</td> 
			<td>String</td>
			<td>令牌错误</td>
		</tr>
	</tbody> 
</table>

<table id="anchor_20" class="exampleTable" > 
	<thead> 
		<tr> 
			<th colspan="3">私信 PrivateMessage</th>
		</tr> 
		<tr> 
			<th width="30%">变量</th> 
			<th width="30%">类型</th>
			<th width="40%">说明</th> 
		</tr> 
	</thead> 
	<tbody> 
		<tr> 
			<td>friendUserName</td> 
			<td>String</td>
			<td>私信对方用户名称</td>
		</tr>
		<tr> 
			<td>messageContent</td> 
			<td>String</td>
			<td>消息内容</td>
		</tr>
	</tbody> 
</table>
<table id="anchor_600" class="exampleTable" > 
	<thead>
		<tr> 
			<th colspan="4">提交'私信'参数</th>
		</tr>
		<tr> 
			<th width="30%">参数</th> 
			<th width="20%">类型</th> 
			<th width="10%">是否必填</th> 
			<th width="40%">说明</th> 
		</tr> 
	</thead> 
	 <tbody>
	 	<tr> 
			<td>friendUserName</td> 
			<td>String</td>
			<td>是</td>
			<td>对方用户名称</td> 
		</tr>
		<tr> 
			<td>messageContent</td> 
			<td>String</td>
			<td>是</td>
			<td>消息内容</td> 
		</tr>
		<tr> 
			<td>captchaKey</td> 
			<td>String</td>
			<td>按需填写</td>
			<td>验证码编号</td> 
		</tr>
		<tr>
			<td>captchaValue</td> 
			<td>String</td>
			<td>按需填写</td>
			<td>验证码值 同一编号验证码每分钟提交次数不能超过60次,超出时验证码图片返回空字符</td> 
		</tr>
		<tr> 
			<td>token</td> 
			<td>String</td>
			<td>是</td>
			<td>令牌</td> 
		</tr>
		<tr> 
			<td>jumpUrl</td> 
			<td>String</td>
			<td>否</td>
			<td>'提交表单 - 默认方式'提交成功后跳转路径,不填写默认跳转到表单提交页；参数必须经过encodeBase64URL编码后才能提交。例${encodeBase64URL('/index')}</td> 
		</tr>
	</tbody> 
</table>

<table class="exampleTable" > 
	<thead> 
		<tr> 
			<th colspan="3">校验验证码</th>
		</tr> 
	</thead> 
	 <tbody> 
	 	<tr> 
			<td>请求路径</td> 
			<td colspan="2">checkCaptcha.htm</td>
		</tr>
		<tr> 
			<td>请求方式</td> 
			<td colspan="2">GET</td>
		</tr> 
		<tr> 
			<td>返回类型</td> 
			<td colspan="2">JSON</td>
		</tr> 
		<tr> 
			<td>必填参数</td> 
			<td colspan="2">
				captchaKey : 验证码编号<br>
				captchaValue : 验证码值  同一编号验证码每分钟提交次数不能超过60次,超出时验证码图片返回空字符
			</td>
		</tr>
		<tr> 
			<td width="30%" >提交返回</td> 
			<td width="30%" >字符串格式值 类型:String</td>
			<td width="40%">值内容说明：成功返回true 失败返回false<br>值类型：String</td> 
		</tr>
	</tbody> 
</table>


<h2 style="margin:0;padding:0; margin-top: 10px;">示例</h2>
<textarea name="exampleCode">

&ltform id="addPrivateMessageForm" name="addPrivateMessageForm" method="post" autocomplete="off"  action="user/control/addPrivateMessage.htm" >
	
	<#-- 提交后跳转参数  参数必须经过encodeBase64URL编码后才能提交 不填写时默认跳转回当前页 -->		
	<input type="hidden" id="jumpUrl" name="jumpUrl" value="${encodeBase64URL('/user/control/privateMessageChatList')}">

	&lttextarea name="messageContent" maxlength="500" placeholder="请在这里输入内容">&lt/textarea>
	<#-- 私信内容错误 -->
	${(error['messageContent'])!}
	
	<#-- 验证码 -->
	<input type="hidden" id="captchaKey" name="captchaKey" value="${formCaptcha.captchaKey}">
	<#-- 验证码值 -->
	<input id="captchaValue" name="captchaValue" type="text" value=""/>		
	<#-- 验证码图片 -->
	&ltimg id="captcha" src="captcha/${formCaptcha.captchaKey!}.jpg"/>
	<#-- 验证码错误 -->
	${(error['captchaValue'])!}
	
	<#-- 获取令牌 -->
	<input type="hidden"  id="token" name="token" value="${token!}">

	<input type="submit" value="提交">
	<#-- 令牌错误 -->
	${error['token']}
	<#-- 私信错误 -->
	${error['privateMessage']}

&lt/form>		
</textarea>